package co.edu.unal.bioingenium.kbmed.mapping.services.api;

import co.edu.unal.bioingenium.kbmed.knowledge.vo.DescriptorData;
import java.util.List;
import java.util.Set;
import javax.jws.WebService;

/**
 * The linkage service is used to service the data for creating links between personas.  This
 * includes links and social groups.
 * 
 * @author  Alejandro Riveros Cruz
 */
@WebService
public interface MappingService {

    /**
     * This service start the mapping proccess. In the first step, the given text is split in sentences, then each
     * sentence is analized to identify the concepts present.
     * @param text The text to map
     * @return key, to query the results of the mapping proccessover the given the text.
     */
    String doMapping(String text);

    /**
     * 
     * @param key 
     * @return If the task was processed or not
     */
    boolean isProcessed(String key);

    /**
     * 
     * @param key 
     * @return A List of the sentences int the text input for the given key
     */
    Set<String> getSentences(String key);

    /**
     * Return the concepts identified for a specific key,sentence combination
     * @param key
     * @param sentence
     * @return
     */
    List<DescriptorData> getConcepts(String key, String sentence);

    /**
     * Return all the concepts idenfied for the specified key
     * @param key
     * @return
     */
    List<DescriptorData> getAllConcepts(String key);
}
